package br.com.lp3.livraria.controller.clientes;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import br.com.lp3.livraria.dao.ClienteDao;
import br.com.lp3.livraria.model.Cliente;
import br.com.lp3.livraria.model.Email;
import br.com.lp3.livraria.model.Endereco;
import br.com.lp3.livraria.model.Telefone;

@WebServlet(urlPatterns="/view/clientes/atualizar.do")
public class AtualizarClienteServlet extends HttpServlet {
	@Override
	protected void doPost(HttpServletRequest req, HttpServletResponse resp)
			throws ServletException, IOException {
		
		Long idUsuario = Long.parseLong(req.getParameter("id"));
		
		String login = req.getParameter("login");
		String senha = req.getParameter("senha");
		String nome = req.getParameter("nome");
		String cpf_cnpj = req.getParameter("cpf_cnpj");
		
		Cliente cliente = new Cliente();
		cliente.setIdUsuario(idUsuario);
		cliente.setLogin(login);
		if (!senha.isEmpty()) cliente.setSenha(senha);
		cliente.setNome(nome);
		cliente.setCnpjCpf(cpf_cnpj);		
		
		String rua = req.getParameter("rua");
		String numero = req.getParameter("numero");
		String bairro = req.getParameter("bairro");
		String cidade = req.getParameter("cidade");
		String estado = req.getParameter("estado");
		String pais = req.getParameter("pais");
		
		Endereco endereco = new Endereco();
		endereco.setRua(rua);
		endereco.setNumero(numero);
		endereco.setBairro(bairro);
		endereco.setCidade(cidade);
		endereco.setEstado(estado);
		endereco.setPais(pais);
		
		List<Endereco> enderecos = new ArrayList<Endereco>();
		enderecos.add(endereco);
		
		String email = req.getParameter("email");
		Email email_cliente = new Email();
		email_cliente.setEmail(email);
		
		List<Email> emails = new ArrayList<Email>();
		emails.add(email_cliente);
		
		String telefone = req.getParameter("telefone");
		Telefone telefone_cliente = new Telefone();
		telefone_cliente.setTelefone(telefone);
		
		List<Telefone> telefones = new ArrayList<Telefone>();
		telefones.add(telefone_cliente);
		
		cliente.setTelefones(telefones);
		cliente.setEnderecos(enderecos);
		cliente.setEmails(emails);
		
		if (!cliente.isFill(1)) {
			resp.sendRedirect("editar.jsp?fill_error=1");
		} else {
			ClienteDao clienteDao = new ClienteDao();
			clienteDao.alterar(cliente);
			resp.sendRedirect("mostrar.do?edit=1&id="+cliente.getIdUsuario());
		}
	}
	
}
